Generally speaking a transport protocol operates within a layered framework of computer networking components and enables a local application hosted on one computer to transmit data over an underlying network to, and receive data over the network from, a remote application hosted on another computer. The transport protocol provides the local and remote applications with a uniform data communication interface that hides the specifics of the topology of the network that interconnects their host computers, and also hides the specifics of the physical connection between their host computers and the network. A variety of transport protocols exist each of which supports a different set of data communication services and capabilities. The Transmission Control Protocol (TCP) is a popular example of a transport protocol which operates throughout the Internet.